%%{init: {
'theme': 'base',
'gitGraph': {'showCommitLabel': false, 'parallelCommits': true}
} }%%
gitGraph
commit id: "Initial commit" tag: "Initial"
commit
commit tag: "Pretty figures"
commit
commit tag: "Journal submission"
October 25, 2024
What you will learn
What you will not learn
Yes, if
You often have to jump between applications, e.g. RStudio or LaTeX editor
You find yourself using mouse too often
You often struggle to find the right command or option
No, if
You only work in R
You do not want to pay entry costs
You get overwhelmed by the need for customization
One of the most used IDEs in the world (~14.24%) \(\Rightarrow\) Many extensions
Has extremely customizable interface
Has outstanding keyboard shortcuts customization
Works with anything (even has packages for Overleaf and Mathematica)
Has an (overwhelming) number of packages working with LLMs
Install VS Code here
Install languageserver in R.
Install the R extension for Visual Studio Code
To enhance the experience of using R in VS Code, the following packages are recommended:
radian: A modern R console that corrects many limitations of the official R terminal and supports many features such as syntax highlighting and auto-completion.
httpgd: An R package to provide a graphics device that asynchronously serves SVG graphics via HTTP and WebSockets. This package is required by the interactive plot viewer of the R extension for VS Code.
Git + GitHub
Version Control: Provides a robust system that tracks changes and manages project history.
Branching and Merging: Supports branching and merging, enabling isolated development of features or fixes.
History and Reversion: Maintains a detailed history of changes, allowing easy reversion to previous states.
Offline Work: Allows for offline work with local repositories.
Dropbox/Overleaf/Google Docs
Real-time Collaboration: More suited for simpler, real-time collaboration.
Limited Branching: Does not inherently support branching and merging.
Basic Versioning: Focuses on file versioning without detailed change tracking.
Online Requirement: Requires internet access for syncing and collaboration.
Yes, if
Multiple co-authors and need to track changes in documents AND data
Need to maintain a clear history of your project’s development and revisions.
You require a reliable backup system for your research files.
No, if
Project is primarily individual and does not involve extensive collaboration.
Not comfortable with command-line tools or prefer simpler file management systems.
%%{init: {
'theme': 'base',
'gitGraph': {'showCommitLabel': false, 'parallelCommits': true}
} }%%
gitGraph
commit id: "Initial commit" tag: "Initial"
commit
commit tag: "Pretty figures"
commit
commit tag: "Journal submission"
%%{init: {
'theme': 'base',
'gitGraph': {'showCommitLabel': false, 'parallelCommits': true}
} }%%
gitGraph
commit id: "Initial commit" tag: "Initial"
commit
branch Jimbo
checkout Jimbo
commit tag: "Nice figures"
checkout main
branch Gosha
checkout Gosha
commit
checkout main
merge Jimbo
commit
checkout Gosha
merge main
commit tag: "Code speedup"
checkout Jimbo
commit
checkout main
merge Gosha
merge Jimbo
commit tag: "Journal submission"
Git won’t help
Creating and Switching Branches
Create a new branch:
Switch to a branch:
Create and switch to a new branch:
You Don’t Need to Remember All Git Commands
git help or online resources for the restInstallation instructions at git-scm.com/book/en/v2/Getting-Started-Installing-Git (or just Google)
clone two repositories:
An open-source scientific and technical publishing system
Allows you to bring together everything:
There is no reason not to switch beyond entry costs!
It is fairly easy to start the switch
It is better than alternative in any respect
Write papers as normal
Use executable chunks with code ```
Use Markdown natively, e.g.
* around word will make it italic and ** will make it bold# for section, ## for subsection, etc.[]() for links and ![]() for imagesbeamer for LaTeX slides
Powerpoint for when you have to collaborate via Office
Revealjs – essentially the replacement for xaringan, but with Pandoc-native syntax
revealjs is an open source HTML presentation framework
Enables anyone with a web browser to create fully-featured and beautiful presentations for free.
revealjs for Quarto is a framework for turning Pandoc-friendly markdown + code into beautiful slides
Shines when used for interactive slides, data results and math
MathJax rendering of equations to HTML
| mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | carb | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Mazda RX4 | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 | 4 |
| Mazda RX4 Wag | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 | 4 |
| Datsun 710 | 22.8 | 4 | 108.0 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |
| Hornet 4 Drive | 21.4 | 6 | 258.0 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 | 1 |
| Hornet Sportabout | 18.7 | 8 | 360.0 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 | 2 |
| Valiant | 18.1 | 6 | 225.0 | 105 | 2.76 | 3.460 | 20.22 | 1 | 0 | 3 | 1 |
| Duster 360 | 14.3 | 8 | 360.0 | 245 | 3.21 | 3.570 | 15.84 | 0 | 0 | 3 | 4 |
| Merc 240D | 24.4 | 4 | 146.7 | 62 | 3.69 | 3.190 | 20.00 | 1 | 0 | 4 | 2 |
| Merc 230 | 22.8 | 4 | 140.8 | 95 | 3.92 | 3.150 | 22.90 | 1 | 0 | 4 | 2 |
| Merc 280 | 19.2 | 6 | 167.6 | 123 | 3.92 | 3.440 | 18.30 | 1 | 0 | 4 | 4 |
| Merc 280C | 17.8 | 6 | 167.6 | 123 | 3.92 | 3.440 | 18.90 | 1 | 0 | 4 | 4 |
| Merc 450SE | 16.4 | 8 | 275.8 | 180 | 3.07 | 4.070 | 17.40 | 0 | 0 | 3 | 3 |
| Merc 450SL | 17.3 | 8 | 275.8 | 180 | 3.07 | 3.730 | 17.60 | 0 | 0 | 3 | 3 |
| Merc 450SLC | 15.2 | 8 | 275.8 | 180 | 3.07 | 3.780 | 18.00 | 0 | 0 | 3 | 3 |
| Cadillac Fleetwood | 10.4 | 8 | 472.0 | 205 | 2.93 | 5.250 | 17.98 | 0 | 0 | 3 | 4 |
| Lincoln Continental | 10.4 | 8 | 460.0 | 215 | 3.00 | 5.424 | 17.82 | 0 | 0 | 3 | 4 |
| Chrysler Imperial | 14.7 | 8 | 440.0 | 230 | 3.23 | 5.345 | 17.42 | 0 | 0 | 3 | 4 |
| Fiat 128 | 32.4 | 4 | 78.7 | 66 | 4.08 | 2.200 | 19.47 | 1 | 1 | 4 | 1 |
| Honda Civic | 30.4 | 4 | 75.7 | 52 | 4.93 | 1.615 | 18.52 | 1 | 1 | 4 | 2 |
| Toyota Corolla | 33.9 | 4 | 71.1 | 65 | 4.22 | 1.835 | 19.90 | 1 | 1 | 4 | 1 |
| Toyota Corona | 21.5 | 4 | 120.1 | 97 | 3.70 | 2.465 | 20.01 | 1 | 0 | 3 | 1 |
| Dodge Challenger | 15.5 | 8 | 318.0 | 150 | 2.76 | 3.520 | 16.87 | 0 | 0 | 3 | 2 |
| AMC Javelin | 15.2 | 8 | 304.0 | 150 | 3.15 | 3.435 | 17.30 | 0 | 0 | 3 | 2 |
| Camaro Z28 | 13.3 | 8 | 350.0 | 245 | 3.73 | 3.840 | 15.41 | 0 | 0 | 3 | 4 |
| Pontiac Firebird | 19.2 | 8 | 400.0 | 175 | 3.08 | 3.845 | 17.05 | 0 | 0 | 3 | 2 |
| Fiat X1-9 | 27.3 | 4 | 79.0 | 66 | 4.08 | 1.935 | 18.90 | 1 | 1 | 4 | 1 |
| Porsche 914-2 | 26.0 | 4 | 120.3 | 91 | 4.43 | 2.140 | 16.70 | 0 | 1 | 5 | 2 |
| Lotus Europa | 30.4 | 4 | 95.1 | 113 | 3.77 | 1.513 | 16.90 | 1 | 1 | 5 | 2 |
| Ford Pantera L | 15.8 | 8 | 351.0 | 264 | 4.22 | 3.170 | 14.50 | 0 | 1 | 5 | 4 |
| Ferrari Dino | 19.7 | 6 | 145.0 | 175 | 3.62 | 2.770 | 15.50 | 0 | 1 | 5 | 6 |
| Maserati Bora | 15.0 | 8 | 301.0 | 335 | 3.54 | 3.570 | 14.60 | 0 | 1 | 5 | 8 |
| Volvo 142E | 21.4 | 4 | 121.0 | 109 | 4.11 | 2.780 | 18.60 | 1 | 1 | 4 | 2 |
Include Jupyter widgets and htmlwidgets in your presentations